Interleaving and parsing for MIMO-OFDM systems

ABSTRACT

An apparatus ( 150 ) ( 170 )- 180 ), system ( 300 ) and method ( 200 ) ( 250 ) ( 270 ) ( 280 ) are provided for a wireless bit-interleaved coded OFDM (BI-COFDM) multiple-in-multiple-out (MIMO) system that improves the diversity seen by a convolutional decoder. In one embodiment, the bit stream is interleaved ( 202 ) first, then bits are mapped ( 203 ) into symbols and then symbols are parsed ( 204 ) into N t  separate streams, where t is the number of transmitters. A deinterleaver ( 162 ) then performs the inverse permutation before sending the symbols to a Viturbi decoder ( 163 ). In a second embodiment, a transmitting side bit-interleaver ( 176 ) transforms an encoded and punctured bit stream using a first permutation, groups ( 175 ) the transformed bit stream according to a desired constellation on one of N t  antennae, splits the transformed bit stream into separate streams accordingly and bit-interleaves/symbol-maps using a plurality of bit-interleavers/symbol-mappers ( 174.1 ) ( 174. N t ) to permute each stream using a second permutation. A receiving side performs the inverse operations of the transmitting side.

The present invention relates to an apparatus, method and system for interleaving and parsing in a MIMO-OFDM based wireless multimedia communication system.

Wireless local area networks (WLAN) are increasingly important in meeting the needs of the next generation of broadband wireless communication systems for both commercial and military applications. In 1999, the Institute of the Electrical and Electronics Engineers (IEEE) 802.11a working group approved a standard for a 5 GHz band WLAN that supports a variable bit rate from 6 to 54 Mbps, and orthogonal frequency-division multiplexing (OFDM) was chosen because of its well-known ability to avoid multipath effects while achieving high data rates by combining a high order sub-carrier modulation with a high-rate convolutional code.

Multiple Input Multiple Output (MIMO) systems, by employing multiple transmit and receive antennas, are known to provide higher capacity and therefore higher throughput than single-link wireless communication systems. MIMO systems form the basis for wireless LANS, as a means to increase data rates in a robust fashion. Another widely used technique in wireless modems in bit-interleaved coded OFDM (BI-COFDM), is explained, for example, in the IEEE 802.11a/g standard. When using MIMO with BI-COFDM, the design of the interleaver and parser becomes very important.

The simplest way of mapping a data stream onto multiple antennae is to split the coded bit stream at the output of the convolutional coder in a round-robin fashion N_(t) parallel bit-streams, where N_(t) is the number of antennae. Each stream is then individually interleaved using, for example, an IEEE 802.11a interleaver. The size of the interleaver is determined by the number of bits that are mapped into a single OFDM symbol. The goal is to spread adjacent bits as far apart as possible so that they experience independent fading. When the parsing is done prior to interleaving, as described above, it is not guaranteed, however, that adjacent bits prior to parsing will be mapped to non-adjacent carriers on different antennae. Thus, the amount of frequency and spatial diversity is reduced.

The present invention provides an apparatus, system and method that interleaves first map bits into symbols and then parses symbols into N_(t) separate streams. One advantage of the present invention is improved diversity as seen by a convolutional decoder.

In a preferred embodiment, the system and method of the present invention includes the following:

-   -   (1) a bit interleaver that interleaves over the total number of         bits in one OFDM symbol over all N_(t) antennae;     -   (2) a bit-to-symbol mapper that maps bits into symbols such that         a plurality of different constellations on a plurality of         different antennae can be supported; and     -   (3) a parser that sends the plurality of different symbols to         the plurality of different antennae.

FIG. 1A illustrates a prior-art MIMO wireless device;

FIG. 1B illustrates a MIMO wireless device modified according to a first embodiment of the present invention;

FIG. 1C illustrates a MIMO wireless device modified according to a second embodiment of the present invention;

FIG. 2A illustrate a flow diagram of the transmitter side of the method of a first embodiment of the present invention;

FIG. 2B illustrates a flow diagram of the receiver side of the method of a first embodiment of the present invention;

FIG. 2C illustrates a flow diagram of the transmitter side of the method of a second embodiment of the present invention;

FIG. 2D illustrates a flow diagram of the receiver side of the method of a second embodiment of the present invention;

FIG. 3 illustrates a simplified block diagram of a wireless device in an ad-hoc wireless network system according to an embodiment of the present invention; and

FIG. 4 illustrates the performance of the first embodiment of the present invention compared to a system that interleaves separately over each antenna.

In the following description, by way of explanation, not limitation, specific details are set forth such as the particular architecture, interfaces, techniques, etc., in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details.

The characteristics of a wireless channel typically vary over time. The error-coding scheme used must be adapted to the changing channel characteristics to achieve the best performance.

An encoder/decoder pair can change code rates using a technique termed “code puncturing” to adapt the code's error correction capabilities without changing their basic structure.

The encoder for a punctured code incorporates a bit selector that deletes specific code bits in accordance with a pre-determined puncturing rule. The original low-rate convolutional encoder is followed by the bit selector and is arranged so that only the bit selection rules need to be changed to generate different rates of codes at a transmitter side.

At a receiver side a Viterbi decoder decodes the punctured codes and only metrics need to be changed in accordance with the same pre-determined puncturing rule.

Interleaving addresses mitigating effects of burst errors. Frequency interleaving exploits the frequency diversity of wide-band transmissions. Time interleaving is not used in WLANs due to the slow-fading characteristics of the channel.

Interleaving amounts to interleaving symbols from at least two codewords before transmission. The error distribution is changed by relocating the bits of codewords so that a burst-error channel looks like a channel having only random errors.

Let m bet the interleaver depth, i.e., the number of codewords interleaved, and let N be the number of bits in a codeword. The data is written row-by-row into an m×N matrix, i.e., m codewords are written codeword-by-codeword into an array of m rows where each row is of length N (N columns). Then the data is read out column-by-column to send it over the channel. Between symbols of a given codeword there are m-1 symbols, one each from the other m-1 codewords. This approach requires that all interleaved data be received before they can be de-interleaved and is therefore slowed down by the interleaving/de-interleaving.

However, even given this somewhat slower approach, the system and method of the present invention provides a more robust transmission within wireless networks by improving the diversity seen by a convolutional decoder in a MIMO system.

In a first embodiment, the system and method of the present invention includes an apparatus comprising:

-   -   (1) a bit interleaver;     -   (2) a bit-to-symbol mapper; and     -   (3) a parser that sends different symbols to different antennae.

The bit interleaver is used to interleave the output of the punctured convolutional code. In IEEE 802.11a, interleaving is done over one OFDM symbol, which has 48 data carriers. When 128-fft and multiple antennae are used, it is advantageous to interleave not only over the 96 data carriers in one OFDM symbol but over all 96*N_(t) data carriers, where N_(t) is the number of transmit streams. After interleaving, the bits are grouped N_(BPSC) at a time, where N_(BPSC) is the number of bits per symbol, e.g., 6 for 64 QAM. Each group of bits is then sent to a separate antenna in a round-robin fashion.

The interleaver is implemented in the following manner.

All encoded data bits are interleaved by a block interleaver with a block size corresponding to the number of bits in a single OFDM symbol, N_(CBPS), multiplied by the number of transmitted streams N_(t). The interleaver is defined by a two-step permutation:

-   -   (1) the first step of the permutation ensures that adjacent         coded bits are mapped onto non-adjacent subcarriers on different         antennae; and     -   (2) the second step of the permutation ensures that adjacent         coded bits are mapped alternately onto less and more significant         bits of the constellation, and, thereby, long runs of low         reliability (least significant bits or LSB) bits are avoided.

Let

-   -   kk=number of columns in the interleaver;     -   k=index of the coded bit before the first permutation;     -   i=the index after the first and before the second permutation;         and     -   j=the index after the second permutation, just prior to         modulation mapping.

In a preferred embodiment, the first permutation is defined by the rule: $\begin{matrix} \begin{matrix} {{i = {{N_{T}*\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\quad\left( \frac{k}{kk} \right)}}},} \\ {{k = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}} \end{matrix} & (1) \end{matrix}$ where floor(.) denotes the largest integer not exceeding the parameter.

The second permutation is defined by the rule: $\begin{matrix} \begin{matrix} {{j = {{s \times {floor}\quad\left( \frac{i}{s} \right)} + {\begin{pmatrix} {i + {N_{T}*N_{CBPS}} - {floor}} \\ \left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right) \end{pmatrix}\quad{mod}\quad s}}},} \\ {{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}} \end{matrix} & (2) \end{matrix}$

The value of s is determined by the number of coded bits per subcarrier, N_(BPSC), according to $\begin{matrix} {s = {\max\quad\left( {\frac{N_{BPSC}}{2},1} \right)}} & (3) \end{matrix}$

In this preferred embodiment, the deinterleaver, which performs the inverse transformation, is also defined by two permutations.

Let

-   -   j=the index of the original received bit before the first         permutation;     -   i=the index after the first and before the second permutation;         and     -   k=the index after the second permutation, just prior to         delivering the coded bits to the convolutional (Viterbi)         decoder.

The first permutation is defined by the rule: $\begin{matrix} \begin{matrix} {{i = {\left( {{s \times {floor}\quad\left( \frac{j}{s} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{T}*N_{CBPS}}} \right)}} \right)} \right)\quad{mod}\quad s}},} \\ {{j = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}} \end{matrix} & (4) \end{matrix}$ where s is defined in Equation (3). This permutation is the inverse of the permutation described in Equation (2).

The second permutation is defined by the rule: $\begin{matrix} \begin{matrix} {{k = {{{kk} \times i} - \left( {\left( {{N_{T}*N_{CBPS}} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)} \right)}},} \\ {{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}} \end{matrix} & (5) \end{matrix}$ This permutation is the inverse of the permutation described in Equation (1). The parameter kk is chosen according to other parameters in the system. For example, simulation results have shown that for a 2×2 system using 64-fft, kk=32 gives the best performance, whereas for a 2×2, 128-fft system, kk-16 gives the best performance. In general, kk depends on the number of antennae and FFT size.

After interleaving, the bits are parsed as follows. The bits are grouped into groups of N_(BPSC) bits corresponding to one constellation symbol. Each group is then sent to one antenna in a round-robin fashion. FIG. 4 illustrates that the interleaving method of the present invention performs almost 1 dB better than interleaving separately over each antenna.

A second embodiment, where the constellation on each antenna can be different (e.g., 64QAM on Antenna 1 and 16 QAM on Antenna 2), comprises the following steps:

-   -   (1) a bit interleaver according to permutation 3 below;     -   (2) grouping bits according to the desired constellation on each         antenna (e.g., 6-bits for 64QAM, 4-bits for 16QAM);     -   (3) a parser sending each group of bits to the appropriate         antenna according to the constellation on each antenna (e.g., in         a two-antenna system comprising Antenna 1 and Antenna 2, 6-bit         groups are sent to Antenna 1, and 4-bit groups are sent to         Antenna 2); and     -   (4) bit-interleaving among bits on each antenna using         permutation 4 below, and then mapping to symbols.         Let     -   N_(T)=number of antennae;     -   N_(CPBSn)=number of coded bits/OFDM symbols for nth antenna;     -   N_(CPBS)=N_(CPBS1+)N_(CPBS2 . . . +)N_(CPBSNT)=total number of         coded bits/OFDM symbol;     -   N_(BPSCn)=number of bits/constellation symbols for nth antenna;     -   kk=number of columns.         Interleaver:         Permutation 3: $\begin{matrix}         \begin{matrix}         {{i = {{\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\quad\left( \frac{k}{kk} \right)}}},} \\         {{i = 0},1,\ldots\quad,{N_{CBPS} - 1}}         \end{matrix} & (6)         \end{matrix}$         Permutation 4 for nth antenna: $\begin{matrix}         {s_{n} = {\max\quad\left( {\frac{N_{{BPSC}_{n}}}{2},1} \right)}} & (7) \\         \begin{matrix}         {{j = {{s_{n} \times {floor}\quad\left( \frac{i}{s_{n}} \right)} + {\left( {i + N_{{CBPS}_{n}} - {{floor}\quad\left( \frac{{kk}*i}{\left( N_{{CBPS}_{n}} \right)} \right)}} \right)\quad{mod}\quad s_{n}}}},} \\         {{i = 0},1,{{\ldots\quad{N_{CBPS}}_{n}} - 1}}         \end{matrix} & (8)         \end{matrix}$         Deinterleaver:         Permutation 5 for nth antenna is the inverse of permutation 4:         $\begin{matrix}         \begin{matrix}         {{i = {\left( {{s_{n} \times {floor}\quad\left( \frac{j}{s_{n}} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{{CBPS}_{n}}}} \right)}} \right)} \right)\quad{mod}\quad s_{n}}},} \\         {{j = 0},1,\ldots\quad,{N_{{CBPS}_{n}} - 1}}         \end{matrix} & (9)         \end{matrix}$         Permutation 6 is the inverse of permutation 3: $\begin{matrix}         \begin{matrix}         {{k = {{{kk} \times i} - \left( {\left( {N_{CBPS} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{N_{CBPS}}} \right)} \right)}},} \\         {{i = 0},1,\ldots\quad,{N_{CBPS} - 1}}         \end{matrix} & (10)         \end{matrix}$

Referring now to FIG. 1A, a conventional MIMO wireless device 100 is shown that parses the 105 stream into n streams prior to interleaving by n interleavers 104.1-104.n for mapping by a plurality of mappers 103.1-103.n and transmission by a plurality of antennae 108.1-108.n, as contrasted with FIG. 1B which illustrates a MIMO wireless device 150 modified according to a first embodiment of the present invention which parses the 153 stream produced by a single interleaver 155. The device 150 comprises a transmitter side and a receiver 161, both of which are operatively coupled to a plurality of antennae 158.1-158.n. On the transmitter side, the device 150 comprises a convolutional encoder 157 that is operatively coupled to a bit selector/puncturer 156 (for puncturing the code) that is operatively coupled to an interleaver 155, which in turn is operatively coupled to a mapper 154. The interleaver 155 is a block interleaver defined by the two-step permutation of Equations (1) and (2). A parser 153 is arranged between the mapper 154 and the antennae 158.1-158.n to select an antenna in a round-robin fashion. On the receiver side the device 150 comprises a receiver 161 operatively coupled between the plurality of antennae 158.1-158.n and a deinterleaver 162 that performs the two-step inverse permutation defined by equations (4) and (5). The output of the deinterleaver is coupled to a Viturbi decoder 163.

Referring now to FIG. 1C, a MIMO device comprising a transmitter side 170 and a receiver side 180 modified according to a second embodiment of the present invention is illustrated. The receiver side 170 comprises a bit-interleaver that interleaves bits 176 according to permutation 3 and a grouper/parser 175 that the groups then bit according to a desired constellation on each antenna (e.g., 6-bits for 64QAM, 4-bits for 16QAM) and sends each group of bits to the appropriate antenna 171.1-171.n according to the constellation on each antenna (i.e., in a two-antenna system comprising Antenna 1 and Antenna 2, 6-bit groups are sent to Antenna 1, and 4-bit groups are sent to Antenna 2). A bit-interleaver 174.1-174.n interleaves among bits on each antenna using permutation 4, and then a symbol mapper 174.1-174.n maps to symbols. A receiver side 180 comprises a bit-deinterleaver/symbol-demapper 184.1-184.n for receiving a stream from each antenna 181.1-181.n to perform permutation 5 on each stream (inverse of permutation 4) and symbol demapping on each stream, coupled to a joiner 185 that joins the streams and is coupled to a bit-deinterleaver 186 and then performs permutation 6 (inverse of permutation 3) on the joined stream. The bit-deinterleaver 186 is coupled to a decoder 187 such that the output of the bit-deinterleaver 186 is sent to the decoder 187.

Referring now to FIG. 2A, a flow 200 of the transmitter side of the method of the first embodiment of the present invention is illustrated. At step 201 the convolutional code output by an encoder 106 is punctured by a bit selector 156 according to a pre-determined rule and then at step 202 the bits are interleaved by an interleaver 155 over one OFDM symbol. The interleaved bits are grouped into NCBPS at step 203, and at step 204 a parser 153 sends the grouped bits to an antenna of a plurality of antennae 157.1-157.n in a round-robin fashion.

Referring now to FIG. 2B, a flow 250 of the receiver side of the method of the present invention is illustrated. At step 251 the received signal is de-interleaved by a deinterleaver 162 that performs the inverse permutation steps of the interleaver 155 performed at step 202, and at step 252 the de-interleaved signal is decoded by a Viturbi decoder 163.

Referring now to FIG. 2C, a flow 270 of the transmitter side of the method of the second embodiment of the present invention is illustrated. At step 271 the convolutional code output by an encoder/puncturer 177 is bit-interleaved 272 using permutation 1 (equation (3)), and then at step 273 the interleaved bits are grouped into N_(CBPS) bits and a parser 175 sends the grouped bits at step 274 for further processing according to the constellation of the appropriate antenna. At step 275, for each antenna's grouped bits, the bits are bit-interleaved using permutation 2 (equation (4)) and symbol-mapped by a bit-interleaver/symbol-mapper 174.1-174.n (for the n antennae).

Referring now to FIG. 2D, a flow 280 of the receiver side of the method of the second embodiment of present invention is illustrated. At step 284 the received signal is bit de-interleaved by a deinterleaver 162 that performs the inverse permutation (equation (5)) of permutation 1, the ‘n’ bit streams are joined at step 285, the joint stream is bit-deinterleaved using the inverse of permutation 1 (equation (6)) at step 286, and at step 287 the de-interleaved signal is decoded by a decoder 187.

Referring now to FIG. 3, the apparatus and method of the present invention can be used in any wireless multimedia transmission devices 150.i with a MIMO system 300, such as a wireless home network, and in MIMO systems for wireless multimedia transmission using IEEE 802.11a/g.

While the preferred embodiments of the present invention have been illustrated and described, it will be understood by those skilled in the art that various changes and modifications may be made, and equivalents may be substituted for elements thereof without departing from the true scope of the present invention. In addition, many modifications may be made to adapt to a particular situation, such as interleaver depth changes, and the teaching of the present invention can be adapted in ways that are equivalent without departing from its central scope. Therefore it is intended that the present invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out the present invention, but that the present invention include all embodiments falling within the scope of the appended claims. 

1. A wireless multiple-in-multiple-out (MIMO) apparatus (150), comprising: a block interleaver (155) that interleaves an input-punctured convolutional bit stream and provides an interleaved output bit stream; a bit-to-symbol mapper (154) to group the interleaved output bit stream of the bit interleaver into output symbols; a parser (153) that sends each of the output symbols of the mapper (154) to one of a plurality of antennae (108.1)-(108.n) in a round-robin fashion; and a deinterleaver (162) that performs the inverse transformation of the block interleaver (155) on a bit stream transformed by the block interleaver (155).
 2. The apparatus of claim 1, wherein the interleaver (155) is defined by a two-step permutation comprising a first and second step such that: a. the first step of the permutation maps adjacent coded bits of the input-punctured convolutional bit stream onto non-adjacent subcarriers on different antennae of said plurality of antennae; and b. the second step of the permutation maps adjacent coded bits alternately onto less and more significant bits of a constellation, thereby avoiding long runs of low reliability (least significant bits or LSB) bits.
 3. The apparatus of claim 2, wherein the deinterleaver (162) performs the inverse transformation of the interleaver (155) and is defined by a two-step permutation comprising a third and fourth step such that the third step is the inverse of the first step and the fourth step is the inverse of the second step.
 4. The apparatus of claim 3, wherein let kk=number of columns in the interleaver (155), k=index of the coded bit before the first step, i=the index after the first and before the second step, j=the index after the second step; the first step is defined by the rule: where floor(.) denotes the largest integer not exceeding the parameter, and the second step is defined by the rule: $\begin{matrix} \begin{matrix} {{j = {{s \times {floor}\quad\left( \frac{i}{s} \right)} + {\begin{pmatrix} {i + {N_{T}*N_{CBPS}} - {floor}} \\ \left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right) \end{pmatrix}\quad{mod}\quad s}}},} \\ {{i = 0},1,\ldots\quad,{{{N_{T}*N_{CBPS}} - 1};}} \end{matrix} & \quad \end{matrix}$ and the value of s is determined by the number of coded bits per subcarrier, N_(BPSC), according to $s = {{\max\left( {\frac{N_{BPSC}}{2},1} \right)}.}$
 5. The apparatus of claim 4, wherein let j=the index of the original received bit before the third step, i=index after the third and before the fourth step, k=the index after the fourth step; the third step is the inverse of the first step and is defined by the rule ${i = {\left( {{s \times {{floor}\left( \frac{j}{s} \right)}} + \left( {j + {{floor}\left( {{kk} \times \frac{j}{N_{T}*N_{CBPS}}} \right)}} \right)} \right){mod}\quad s}},{j = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}$ and the fourth step is the inverse of the second step and defined by the rule ${k = {{{kk} \times i} - \left( {\left( {{N_{T}*N_{CBPS}} - 1} \right)*{{floor}\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)}} \right)}},{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}$
 6. The apparatus of claim 1, wherein: the wireless system is an IEEE 802.11a system; the block interleaver (155) has a block size corresponding to the number of bits N_(CBPS) in an OFDM symbol multiplied by the number of transmitted streams N_(t) and interleaves over one of all data carriers in an OFDM symbol and all transmit streams; and the mapper (154) groups bits a pre-determined N_(BPSC) bits at a time.
 7. The apparatus of claim 6, wherein the interleaver (155) is defined by a two-step permutation comprising a first and second step such that: a. the first step of the permutation maps adjacent coded bits of the input-punctured convolutional bit stream onto non-adjacent subcarriers on different antennae of said plurality of antennae (108.1)-(108.n); and b. the second step of the permutation maps adjacent coded bits alternately onto less and more significant bits of a constellation, thereby avoiding long runs of low reliability (least significant bits or LSB) bits.
 8. The apparatus of claim 7, wherein the deinterleaver (162) performs the inverse transformation of the interleaver (155) and is defined by a two-step permutation comprising a third and fourth step such that the third step is the inverse of the first step and the fourth step is the inverse of the second step.
 9. The apparatus of claim 8, wherein let kk=number of columns in the interleaver (155), k=index of the coded bit before the first step, i=the index after the first and before the second step, j=the index after the second step; the first step is defined by the rule: ${i = {{N_{T}*\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\left( \frac{k}{kk} \right)}}},{k = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}$ where floor(.) denotes the largest integer not exceeding the parameter; the second step is defined by the rule: ${j = {{s \times {{floor}\left( \frac{i}{s} \right)}} + {\left( {i + {N_{T}*N_{CBPS}} - {{floor}\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)}} \right){mod}\quad s}}},{i = 0},1,\ldots\quad,{{{N_{T}*N_{CBPS}} - 1};}$ and the value of s is determined by the number of coded bits per subcarrier, N_(BPSC), according to $s = {\max\left( {\frac{N_{BPSC}}{2},1} \right)}$
 10. The apparatus of claim 9, wherein let j=the index of the original received bit before the third step, i=index after the third and before the fourth step, k=the index after the fourth step; the third step is the inverse of the first step and is defined by the rule ${i = {\left( {{s \times {{floor}\left( \frac{j}{s} \right)}} + \left( {j + {{floor}\left( {{kk} \times \frac{j}{N_{T}*N_{CBPS}}} \right)}} \right)} \right){mod}\quad s}},{j = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}$ and the fourth step is the inverse of the second step and defined by the rule ${k = {{{kk} \times i} - \left( {\left( {{N_{T}*N_{CBPS}} - 1} \right)*{{floor}\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)}} \right)}},{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}$
 11. A method for interleaving and parsing in a multiple-in-multiple-out device, comprising the steps of: interleaving (202) an input-punctured convolutional code according to a predetermined two-step permutation; mapping (203) the interleaved bit stream to symbols; parsing (204) the symbols to send in a round-robin fashion different symbols of the mapping to different antennae of a plurality of antennae (158.1)-(158.n); and deinterleaving (251) a received interleaved stream according to a predetermined two-step inverse permutation.
 12. The method of claim 11, wherein the interleaving step (202) further comprises: a first step of mapping adjacent coded bits of the input-punctured convolutional code onto non-adjacent subcarriers on different antennae of said plurality of antennae; and a second step of mapping adjacent coded bits alternately onto less and more significant bits of a constellation, thereby avoiding long runs of low reliability (least significant bits or LSB) bits.
 13. The method of claim 12, wherein the deinterleaving step (251) further comprises a third mapping fourth -mapping step such that the third step is the inverse of the first step and the fourth step is the inverse of the second step.
 14. The method of claim 13, wherein let kk=number of columns in the interleaver (155), k=index of a coded bit before the first step, i=the index after the first and before the second step, j=the index after the second step; the first step is defined by the rule: ${i = {{N_{T}*\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\left( \frac{k}{kk} \right)}}},{k = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}$ where floor(.) denotes the largest integer not exceeding the parameter; the second step is defined by the rule: ${j = {{s \times {{floor}\left( \frac{i}{s} \right)}} + {\left( {i + {N_{T}*N_{CBPS}} - {{floor}\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)}} \right){mod}\quad s}}},{i = 0},1,\ldots\quad,{{{N_{T}*N_{CBPS}} - 1};}$ and the value of s is determined by the number of coded bits per subcarrier, N_(BPSC), according to $s = {\max\quad{\left( {\frac{N_{BPSC}}{2},1} \right).}}$
 15. The method of claim 14, wherein let j=the index of an original received bit before the third step, i=index after the third and before the fourth step, k=the index after the fourth step; the third step is the inverse of the first step and is defined by the rule $\begin{matrix} {{i = {\left( {{s \times {floor}\quad\left( \frac{j}{s} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{T}*N_{CBPS}}} \right)}} \right)} \right)\quad{mod}\quad s}},} \\ {{j = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}} \end{matrix}$ and the fourth step is the inverse of the second step and defined by the rule $\begin{matrix} {{k = {{{kk} \times i} - \left( {\left( {{N_{T}*N_{CBPS}} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)} \right)}},} \\ {{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}} \end{matrix}$
 16. The method of claim 11, wherein: the device is an IEEE 802.11a wireless device (150); the interleaving step (202) is performed by a block interleaver that has a block size corresponding to the number of bits N_(CBPS) in an OFDM symbol multiplied by the number of transmitted streams N_(t) and interleaves over one of all data carriers in an OFDM symbol and all transmit streams; and the mapping step (203) further comprises the step of grouping bits a pre-determined N_(BPSC) bits at a time.
 17. The method of claim 16, wherein the interleaving step (202) further comprises: a first step of mapping adjacent coded bits of the input-punctured convolutional code onto non-adjacent subcarriers on different antennae of said plurality of antennae (158.1)-(158.n); and a second step of mapping adjacent coded bits alternately onto less and more significant bits of a constellation, thereby avoiding long runs of low reliability (least significant bits or LSB) bits.
 18. The method of claim 17, wherein the deinterleaving step (251) further comprises a third and fourth step such that the third step is the inverse of the first step and the fourth step is the inverse of the second step.
 19. The method of claim 18, wherein let kk=number of columns in the interleaver (155), k=index of a coded bit before the first step, i=the index after the first and before the second step, j=the index after the second step; the first step is defined by the rule: $\begin{matrix} {{i = {{N_{T}*\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\quad\left( \frac{k}{kk} \right)}}},} \\ {{k = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}} \end{matrix}$ where floor(.) denotes the largest integer not exceeding the parameter; the second step is defined by the rule: $\begin{matrix} \begin{matrix} {{j = {{s \times {floor}\quad\left( \frac{i}{s} \right)} + {\begin{pmatrix} {i + {N_{T}*N_{CBPS}} - {floor}} \\ \left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right) \end{pmatrix}\quad{mod}\quad s}}},} \\ {{i = 0},1,\ldots\quad,{{{N_{T}*N_{CBPS}} - 1};}} \end{matrix} & \quad \end{matrix}$ and the value of s is determined by the number of coded bits per subcarrier, N_(BPSC), according to $s = {\max\quad{\left( {\frac{N_{BPSC}}{2},1} \right).}}$
 20. The method of claim 19, wherein let j=the index of an original received bit before the third step, i=index after the third and before the fourth step, k=the index after the fourth step; the third step is the inverse of the first step and is defined by the rule $\begin{matrix} {{i = {\left( {{s \times {floor}\quad\left( \frac{j}{s} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{T}*N_{CBPS}}} \right)}} \right)} \right)\quad{mod}\quad s}},} \\ {{j = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1}} \end{matrix}$ and the fourth step is the inverse of the second step and defined by the rule $\begin{matrix} {{k = {{{kk} \times i} - \left( {\left( {{N_{T}*N_{CBPS}} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{\left( {N_{T}*N_{CBPS}} \right)}} \right)} \right)}},} \\ {{i = 0},1,\ldots\quad,{{N_{T}*N_{CBPS}} - 1.}} \end{matrix}$
 21. A multiple-in-multiple-out (MIMO) wireless network of at least two devices (150) comprising: a transmitting side comprising: a block interleaver (155) that interleaves an input-punctured convolutional bit stream and provides an interleaved output bit stream; a bit-to-symbol mapper (154) to group the interleaved output bit stream of the bit interleaver into output symbols; a parser (153) that sends each of the output symbols of the mapper to one of a plurality of antennae (158.1)-(158.n) in a round-robin fashion; and a receiving side comprising: a deinterleaver (162) that performs the inverse transformation of the block interleaver (155) on a received bit stream transformed and transmitted by a device configured as is in the transmitting side.
 22. A wireless multiple-in-multiple-out (MIMO) apparatus (170) (180), comprising: a bit interleaver (176) to permute with a first permutation an input-punctured convolutional bit stream and provide a first permuted interleaved output bit stream; a grouper/parser (175) to group bits of the first permuted interleaved output bit stream according to a desired constellation on each of a plurality of antennae and to send each group of bits to the appropriate one of said plurality of antennae (172.1)-(172.n); a plurality of bit-interleaver/symbol-mappers (174.1)-(174.n) to permute with a second permutation the grouped and parsed bit stream to a second permuted interleaved output bit stream and to map the symbols; a plurality of bit-deinterleaver/symbol-mappers (184.1)-(184.n) that performs the inverse permutation of the second permutation on a plurality of received bit streams previously transformed by the bit-interleaver/symbol-mappers (174.1)-(174.n) to produce a plurality of first de-interleaved inversely permuted bit streams; a joiner (185) to join the plurality of first de-interleaved inversely permuted bit streams into a single permuted received bit stream; and a bit-deinterleaver (186) that performs the inverse permutation of the first permutation on the single permuted received-bit stream previously transformed by the bit-interleaver (176) and sends said resulting single bit stream to a decoder (187).
 23. The apparatus of claim 22, wherein: let N_(T)=number of antennae, N_(CPBSn)=number of coded bits/OFDM symbols for nth antenna, N_(CPBS)=N_(CPBS1+)N_(CPBS2 . . . +)N_(CPBSNT)=total number of coded bits/OFDM symbols, N_(BPSCn)=number of bits/constellation symbols for nth antenna, kk=number of columns of the bit-interleaver; the first permutation is defined by the rule: $\begin{matrix} {{i = {{\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\quad\left( \frac{k}{kk} \right)}}},} \\ {{k = 0},1,\ldots\quad,{{N_{CBPS} - 1};}} \end{matrix}$ and the second permutation is defined by nth antenna, the value of s_(n) is determined by the number of coded bits per subcarrier, N_(BPSC) by: $\begin{matrix} {s_{n} = {\max\quad\left( {\frac{N_{{BPSC}_{n}}}{2},1} \right)}} \\ {{j = {{s_{n} \times {floor}\quad\left( \frac{i}{s_{n}} \right)} + {\left( {i + N_{{CBPS}_{n}} - {{floor}\quad\left( \frac{{kk}*i}{\left( N_{{CBPS}_{n}} \right)} \right)}} \right)\quad{mod}\quad s_{n}}}},} \\ {{i = 0},1,{{{\ldots\quad{N_{CBPS}}_{n}} - 1};}} \end{matrix}$ where floor(.) denotes the largest integer not exceeding the parameter.
 24. The apparatus of claim 23, wherein: for nth antenna the inverse of permutation 4 is defined by $\begin{matrix} {{i = {\left( {{s_{n} \times {floor}\quad\left( \frac{j}{s_{n}} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{{CBPS}_{n}}}} \right)}} \right)} \right)\quad{mod}\quad s_{n}}},} \\ {{j = 0},1,\ldots\quad,{N_{{CBPS}_{n}} - 1}} \end{matrix}$ ; and the inverse of permutation 3 is defined by ${k = {{{kk} \times i} - \left( {\left( {N_{CBPS} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{N_{{CBPS}_{n}}}} \right)} \right)}},{i = 0},1,\ldots\quad,{N_{CBPS} - 1.}$
 25. A method for interleaving and parsing in a multiple-in-multiple-out device, comprising the steps of: interleaving (272) an input-punctured convolutional code according to a predetermined first permutation; grouping (273) the interleaved bit stream to n bit streams according to a desired constellation associated with a plurality of n antennae; parsing (274) each of the n bit streams to an antennae of said plurality of n antennae (172.1)-(172.n) according to a constellation associated with each antenna of said plurality; bit-interleaving/symbol-mapping (275) each of the n bit streams according to a predetermined second permutation; bit-deinterleaving/symbol-demapping (284) each of a received plurality of n bit-interleaved streams previously transformed by the second permutation in accordance with an inverse of the second permutation; joining (185) the n bit-deinterleaved/symbol-demapped bit into a single bit stream; bit-deinterleaving (286) the joined single bit stream previously transformed by the first permutation in accordance with an inverse of the first permutation; and decoding (287) the de-interleaved joined single bit stream.
 26. The method of claim 25, wherein let N_(T)=number of antennae, N_(CPBSn)=number of coded bits/OFDM symbols for nth antenna, N_(CPBS)=N_(CPBS1+)N_(CPBS2 . . . +)N_(CPBSNT)=total number of coded bits/OFDM symbol, N_(BPSCn)=number of bits/constellation symbols for nth antenna, kk=number of columns; the first permutation is defined by ${i = {{\frac{N_{CBPS}}{kk}\left( {k\quad{mod}\quad{kk}} \right)} + {{floor}\quad\left( \frac{k}{kk} \right)}}},{k = 0},1,\ldots\quad,{{N_{CBPS} - 1};}$ the second permutation for nth antenna is defined by: $\begin{matrix} {s_{n} = {\max\quad\left( {\frac{N_{{BPSC}_{n}}}{2},1} \right)}} \\ {{j = {{s_{n} \times {floor}\quad\left( \frac{i}{s_{n}} \right)} + {\left( {i + N_{{CBPS}_{n}} - {{floor}\quad\left( \frac{{kk}*1}{\left( N_{{CBPS}_{n}} \right)} \right)}} \right)\quad{mod}\quad s_{n}}}},} \\ {{i = 0},1,{{{\ldots\quad N_{{CBPS}_{n}}} - 1};}} \end{matrix}$ for nth antenna, the inverse of the second permutation is defined by: $\begin{matrix} {{i = {\left( {{s_{n} \times {floor}\quad\left( \frac{j}{s_{n}} \right)} + \left( {j + {{floor}\quad\left( {{kk} \times \frac{j}{N_{{CBPS}_{n}}}} \right)}} \right)} \right)\quad{mod}\quad s_{n}}},} \\ {{j = 0},1,\ldots\quad,{{N_{{CBPS}_{n}} - 1};{and}}} \end{matrix}$ the inverse of the first permutation is defined by: ${k = {{{kk} \times i} - \left( {\left( {N_{CBPS} - 1} \right)*{floor}\quad\left( {{kk} \times \frac{i}{N_{CBPS}}} \right)} \right)}},{i = 0},1,\ldots\quad,{N_{CBPS} - 1.}$
 27. A multiple-in-multiple-out (MIMO) wireless network of at least two devices (150) comprising: a transmitting side comprising: a bit-interleaver (176) that transforms an input-punctured convolutional bit stream according to a first predefined permutation and provides an interleaved output bit stream; a grouper/parser (175) to group the interleaved output bit stream of the bit interleaver into n bit streams according to a constellation of each of a plurality of n antennae (172.1)-(172.n); a plurality of n bit-interleaver/symbol-mappers (174.1)-(174.n) to transform each of the n bit streams according to a second predetermined permutation; and a receiving side comprising: a plurality of n bit-deinterleaver/symbol-demappers (184.1)-(184.n) that perform the inverse transformation of the second permutation on a plurality n of received bit streams transformed by the second transformation to output n bit-deinterleaved/symbol-demapped received streams; a joiner (185) to join the n bit-deinterleaved/symbol-demapped into a single bit-deinterleaved/symbol-demapped stream; and a bit-deinterleaver (186) that performs the inverse transformation of the first permutation on the single bit-deinterleaved/symbol-demapped stream previously transformed by the first permutation. 